﻿
/////////////////////////////////////////////////////////////////
//File: CommentHandler.cs
//Description: 这是安全控制器，使用代理模式。只有需要授权的数据才从这里读取，非授权数据请直接调用服务类。
//             CRUD授权过程：1. C,U操作要检查输入的数据是否符合授权。
//                          2. R操作要先读出目标数据，然后检查数据是否符合授权。
//                          3. D操作要先进行R操作过滤，判断输入数据是否符合授权，然后只执行符合授权的删除，忽略不符合授权的操作。
//                             为了保存程序的简洁和数据库执行效率，R过滤可以在Sql中完成。
//             
//Copyright© 2011 Moliu
//History:
//  2011-3-21 23:35:08    CodeSmith5.0.1    Original Version
/////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Security.Permissions;
using System.Security;
using System.Threading;
using MAF.Common;
using My.Blog.Domain.Entities;
using My.Blog.Domain.Interfaces;

namespace My.Blog.Business.Security
{
    public partial class CommentSafe : IComment
    {
        // 构造函数
        public CommentSafe(IComment thisObj)
        {
            _This = thisObj;
        }
        
        #region IComment成员
        
        // Create
        public  object CreateComment(CommentInfo info )
        {
            //// 权限判断
            //if( SecurityUtility.IsInRole("") )
            //{   ;   }
            //else
            //{    throw new SecurityException("权限不足");   }
            
            return _This.CreateComment(info);
        }
        
        // Update
        public int UpdateComment(CommentInfo info )
        {
            // 权限判断
            if (SecurityUtility.IsInRole(""))
            { ;   }
            else
            { info.BlogId = int.Parse(SecurityUtility.UserId); }
            
            return _This.UpdateComment(info);
        }
        
        // Delete
        public int DeleteComments(CommentInfo info )
        {
            // 权限判断
            if (SecurityUtility.IsInRole(""))
            { ;   }
            else
            { info.BlogId = int.Parse(SecurityUtility.UserId); }
            
            return _This.DeleteComments(info);
        }
        
        // Detail
        public CommentInfo ReadCommentById(CommentInfo info)
        {
            //// 权限判断
            //if( SecurityUtility.IsInRole("") )
            //{   ;   }
            //else
            //{    throw new SecurityException("权限不足");   }
            
            info = _This.ReadCommentById(info);
            return info;
        }
        
        // List
        public IList<CommentInfo> ReadCommentsByConditions(CommentInfo info, int pageSize, int currentPage )
        {
            //// 权限判断
            //if( SecurityUtility.IsInRole("") )
            //{   ;   }
            //else
            //{    throw new SecurityException("权限不足");   }
            
            return _This.ReadCommentsByConditions(info,pageSize,currentPage);
        }
        
        // Count
        public int ReadCommentsCountByConditions( CommentInfo info )
        {
            return _This.ReadCommentsCountByConditions( info );
        }
        
        #endregion 
        
        #region Private Member
        private IComment _This = null;
        #endregion
        
        //================================
        // 上面是自动生成的代码,下面是手工编写的代码
        //================================        
    }
}
    